package com.emergency.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.emergency.data.entity.AffectedPoint;
import com.emergency.data.param.*;
import com.emergency.data.vo.*;

import java.util.List;
import java.util.Map;

/**
 * (AffectedPoint)受灾点服务
 *
 * @author makejava
 * @since 2020-10-09
 */
public interface AffectedPointService extends IService<AffectedPoint> {

    List<AffectedPointVO> getAffectedPointList();

    AffectedPointDispatchVO getAffectedPointDetails(Long id);

    boolean addAffectedPoint(AffectedPointParam affectedPointParam);

    boolean delAffectedPoint(Long id);

    Map<String,Object> scopeScheduleSearch(Long affectedPointId, Integer scheduleScope);

    boolean scheduleScopeAffected(ScheduleScopeAffectedParam scheduleScopeAffectedParam);

    List<TypeVO> getSuppliesTypeList();

    List<TypeVO> getRescueTeamTypeList();

    Map<String,Object> requiredScheduleSearchTeam(Long affectedPointId,Integer typeId);

    Map<String,Object> requiredScheduleSearchRescue(Long affectedPointId,Integer affectedCount);

    boolean expertConfirmNotice(Long noticeId);

    List<ExpertGroupListVO> expertNoticeList(Long affectedPointId);
    boolean addExpertNotice(NoticeParam noticeParam);

    List<TeamVO> scheduleRequireAffectedTeam(ScheduleRequireAffectedTeamParam scheduleRequireAffectedTeamParam);

    List<SettlementVO> scheduleRequireAffectedSettlement(ScheduleRequireAffectedSettlementParam scheduleRequireAffectedSettlementParam);

    List<SuppliesVO> scheduleRequireAffectedSupplies(ScheduleRequireAffectedSuppliesParam scheduleRequireAffectedSuppliesParam);

    List<DispatchSuppliesSearchVo> requiredScheduleSearchSupplies(DispatchRequiredSuppliesParam param);
}
